顯示訊息是一個簡單、很實用的小功能,有時候我們需要引導使用者做一些事情,這時候就可以用Toast元件來提醒使用者。
例如,在昨天寫的code裡,我們想要多加一個功能:必須要使用者輸入姓名,才會實現切換,於是就在監聽事件裡面多加if - else條件,判斷如果ed_name字串是空白時,做Toast功能提醒使用者要輸入,反之則實現頁面切換
// btn_choice.setOnClickListener {
if (ed_name.text.toString().isBlank())
Toast.makeText(this@MainActivity, "請輸入訂購人姓名", Toast.LENGTH_SHORT ).show()
else {
// val intent = Intent(this, Main2Activity::class.java)
...
...
}
}
如何做一個Toast訊息
Toast 是一個小型提示訊息的視窗,會顯示在視窗下方的一個小小訊息,多半是用來提醒使用者。基本型態:
val context = applicationContext //表示context
val text = "Hello toast!" //訊息內容
val duration = Toast.LENGTH_SHORT //表示顯示時長
val toast = Toast.makeText(context, text, duration)
toast.show()
如果不想寫上面這麼多行,可以直接串(chain)起來,變成
Toast.makeText(context, "text", duration).show()
Toast.LENGTH_SHORT
或Toast.LENGTH_LONG
兩種客製化Toast訊息
有時候我們不想用模板化的文字訊息、或不想只是顯示在頁面下方,需要改變樣式和位置擺設,這時候可以來客製化Toast。
在res/layout開一個XML檔案,用以放置要顯示的訊息元件,拉一個簡單的圖示+文字
利用「layoutInflater.inflate」放入自定義畫面
inflate(int resource, ViewGroup root)
Inflate a new view hierarchy from the specified xml resource.
val toast = Toast(this)
toast.view = layoutInflater.inflate(R.layout.custom_toast, null)
toast.duration = Toast.LENGTH_SHORT
toast.setGravity(Gravity.CENTER, 0, 0) //可設定位置
.setGravity
.setGravity(Gravity.CENTER, 0, 0)